package sz.szsmk.citizencard.retrofitrxjava.newversion

import retrofit2.http.Body
import retrofit2.http.POST
import rx.Observable
import sz.szsmk.citizencard.model.network.bean.request.*
import sz.szsmk.citizencard.model.network.bean.response.*
import sz.szsmk.citizencard.model.network.bean.response.BaseBean
import sz.szsmk.citizencard.model.network.clarkbean.response.AreaInfoResponse
import sz.szsmk.citizencard.model.network.dzbean.req.*
import sz.szsmk.citizencard.model.network.dzbean.res.*
import sz.szsmk.citizencard.ui.newversion.bean.AppealTypeVoListBean
import sz.szsmk.citizencard.ui.newversion.bean.AuthRequest
import sz.szsmk.citizencard.ui.newversion.bean.AuthRes
import sz.szsmk.citizencard.ui.newversion.bean.InsertAppealInfoBean

/**
 *  author : hyt
 *  date : 2020/8/13
 *  description :
 */
interface NewHttpApi {

    //用户密码登录
    @POST("app/uums/loginByPassWord")
    fun login(@Body loginRequest: LoginRequest?): Observable<UserBean?>


    //申述类型查询
    @POST("app/appeal/queryAppealType")
    fun queryAppealType(@Body baseRequest: BaseRequest?): Observable<AppealTypeVoListBean?>


    //用户申诉
    @POST("app/appeal/insertAppealInfo")
    fun insertAppealInfo(@Body insertAppealInfoBean: InsertAppealInfoBean?): Observable<BaseBean?>


    //获取用户信息
    @POST("app/uums/getUserInfo")
    fun getUserInfo(@Body getUserInfoReq: IBaseRequest?): Observable<IUserInfo?>

    //获取用户实名信息
    @POST("app/getUserInfo")
    fun getUserInfo(@Body commonRequest: CommonRequest?): Observable<GetUserInfoRes?>?



    //获取openid
    @POST("app/uums/getOpenId")
    fun getOpenId(@Body body: GetOpenIdReq?): Observable<GetOpenIdRes?>?

    //获取实名认证
    @POST("app/checkIsRealName")
    fun checkIsRealName(@Body commonRequest: CommonRequest?): Observable<CheckIsRealName2Res?>?

    //相当于登录..
    @POST("app/preAuthThird")
    fun preAuthThird(@Body preAuthThiedReq: PreAuthThiedReq?): Observable<PreAuthThirdRes?>?

    //查询用户是否首次充值
    @POST("app/checkIsCharge")
    fun checkIsCharge(@Body commonRequest: CommonRequest?): Observable<CheckIsChargeRes?>?

    //获取二维码
    @POST("app/getQrNumber")
    fun getQrNumber(@Body qrCodeNumberRequest: QrCodeNumberRequest?): Observable<QrNumberResponse?>?


    //查询用户签订的协议
    @POST("app/uums/queryDzsmkAgreement")
    fun queryDzsmkAgreement(@Body queryDzsmkAgreementReq: QueryDzsmkAgreementReq?): Observable<QueryDzsmkAgreeMentRes?>?


    //首页认证信息获取
    @POST("/app/uums/firstSearchUserLevel")
    fun firstSearchUserLevel(@Body firstSearchUserLevelRequest: IBaseRequest?): Observable<FirstSearchUserLevelRes?>?


    //根据token查询 各种卡的信息
    @POST("/app/tour/validCardAuthorizationAddLeisureDetail")
    fun validCardAuthorization(@Body iBaseRequest: IBaseRequest?): Observable<ValidCardAuthorizationRes?>?

    //查询卡片是否授权
    @POST("app/tour/cardnoAuthorization")
    fun cardnoAuthorization(@Body cardnoAuthorizationReq: CardnoAuthorizationReq?):Observable<CardnoAuthorizationRes?>?

    //查询用户所有有效休闲年卡信息
    @POST("app/tour/quryLeisureCardsNew")
    fun quryLeisureCards(@Body accessTokenRequest: QueryAllCardsReq?): Observable<QuerLeisureCardsInfoRes?>?


    //休闲年卡授权 上传能图片
    @POST("/app/eWallect/updateOfflineCardPicture")
    fun upLoadPic(@Body uploadPic: UploadPic?): Observable<BaseBean?>?


    //获取二维码
    @POST("/app/tour/getUserQRCode")
    fun getUserQRCode(@Body iBaseRequest: QRCodeRequest?): Observable<QRCodeBean?>?

    //是否开通 支付码
    @POST("app/cake/cakeCard/checkVirCake")
    fun getIsOpenPayCode(@Body baseRequest: CheckVirCakeBeanReq?): Observable<CheckVirCakeBeanRes?>?

    //获取余额sign
    @POST("app/cake/cakeCard/queryCakeBalance")
    fun queryCakeBalance(@Body cakeCardBeanReq: CakeCardBeanReq?): Observable<CakeBalanceBeanRes?>?

    //获取支付码    二维码
    @POST("app/cake/cakeCard/getQrNumber")
    fun getPayCode(@Body baseRequest: CakeCardBeanReq?): Observable<CakeQRBeanRes?>?

    //获取NG    持有资产
    @POST("app/ng/getNgFinanceAssets")
    fun queryNgFinance(@Body queryNgFinanceReq: QueryNgFinanceReq?): Observable<QueryNgFinanceRes?>?

    //电市子民卡接口 - 获取支持的银行卡
    @POST("app/getSupportBankList")
    fun getSupportBankList(@Body commonRequest: CommonRequest?): Observable<SupportBankResponse?>?

    //电市子民卡接口 -验证银行卡是否信用卡，是否正确对应发卡行
    @POST("app/checkBankNoValidation")
    fun checkBankCardNumberValidation(@Body registerRequest: CheckBankCardRequset?): Observable<CheckBankCodeRes?>?

    //电市子民卡接口 -获取银行名称
    @POST("app/getBankName")
    fun getBankName(@Body getBankNameRequest: GetBankNameRequest?): Observable<GetBankNameRes?>?

    //获取用户信息
    @POST("app/uums/getUserInfo")
    fun getUserInfoZhsz(@Body getUserInfoReq: IBaseRequest?): Observable<IUserInfo?>?

    //获取积分
    @POST("app/credit/queryUserCredit")
    fun getScore(@Body signInReq: SignInReq?): Observable<SignInRes?>?

    //获取积分
    @POST("/app/coupon/queryCouponCount")
    fun queryCouponCount(@Body accessTokenRequest: AccessTokenRequest?): Observable<CouponListBean?>?

     //查询认证信息
    @POST("app/uums/selectUserAuth")
    fun getUserAuthInfo(@Body accessTokenRequest: AccessTokenRequest?): Observable<SeleciUserAuthRes?>?

    //体育惠民拼接接口
    @POST("uas/gateway/v1/getopenid")
    fun getOrderOpenid(@Body getOrderOpenid: GetOrderOpenid?): Observable<GetOrderOpenidRes?>?

    //获取我的银行
    @POST("app/uums/dzsmkAgreement")
    fun dzsmkAgreement(@Body dzsmkAgreementReq: DzsmkAgreementReq?): Observable<IbaseBean?>

    //获取首页广告模块
    @POST("app/config/queryAllAdvertisement")
    fun getAreaInfo(@Body baseRequest: IBaseRequest?): Observable<AreaInfoResponse?>?

    //公告
    @POST("app/config/queryInterductionArea")
    fun queryInterductionArea(@Body accessTokenRequest: GetResourceReq?): Observable<QueryInterductionAreaRes?>?

    //获取用户设置的应用
    @POST("app/config/queryAllFunctionNew")
    fun queryAllFunctionNew(@Body changeUserFuncReq: IBaseRequest?): Observable<QueryAllFunctionNewRes?>?

    //获取天气
    @POST("app/third/weather/general")
    fun getWeathGeneral(@Body weathReq: HomeWeathReq?): Observable<HomeWeathRes?>?

    //获取 首页消息
    @POST("app/third/message/mainPage")
    fun getMainNotice(@Body noticeMainReq: NoticeMainReq?): Observable<NoticeMainres?>?

    //各个订单状态数量
    @POST("app/tour/queryOrderCount")
    fun queryOrderCount(@Body accessTokenRequest: AccessTokenRequest?): Observable<QueryOrderCountRes?>?

    //获取钱包 持有资产 是否显示
    @POST("app/config/queryCommonConfig")
    fun queryCommonConfig(@Body getUserInfoReq: IBaseRequest?): Observable<MeConfigInfoListRes?>?

    //校验桂花分账号是否存在
    @POST("user/login/isAccountExist?phoneNum")
    fun queryAccountExist(@Body accountExist: AccountExistReq?): Observable<AccountExistRes?>?


    //获取我的优惠券
    @POST("app/coupon/getUserCoupons")
    fun getUserCoupons(@Body couponReq: CouponReq?): Observable<CouponListBean?>?


    //请求服务网点列表
    @POST("app/supply/websiteList")
    fun websiteList(@Body prepayWebRequest: ServiceNetReq?): Observable<PrepayResponse?>?

    //获取卡片列表
    @POST("app/uums/queryUserCardInfo")
    fun queryUserCardInfo(@Body cardRequest: QueryUserCardRequest?): Observable<QueryUserCardRes?>?

    //保存nfc开卡用户信息
    @POST("app/nfc/appPushService")
    fun saveNfcCardInfo(@Body saveNfcCardReq: SaveNfcCardReq?): Observable<BaseBean?>?

    //获取extend
    @POST("/uas/gateway/v1/getopenid")
    fun getOpenID(@Body getopenid: GetOpenIDReq?): Observable<GetOpenIDRes?>?

    //获取首页悬浮广告
    @POST("/app/config/queryPageHangAd")
    fun showAD(@Body showADReq: ShowADReq?): Observable<ShowADRes?>?


    //查询是否授权 并返回 accecc_token
    @POST("/app/uums/checkUserThirdBind")
    fun authForSZ(@Body authRequest: AuthRequest?): Observable<AuthRes?>

}